package com.example.dw.common;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应状态码枚举
 * @author system
 * @since 2024-01-01
 */
@Getter
@AllArgsConstructor
public enum ResultCode {

    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 失败
     */
    ERROR(500, "操作失败"),

    /**
     * 参数错误
     */
    PARAM_ERROR(400, "参数错误"),

    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),

    /**
     * 禁止访问
     */
    FORBIDDEN(403, "禁止访问"),

    /**
     * 资源未找到
     */
    NOT_FOUND(404, "资源未找到"),

    /**
     * 用户不存在
     */
    USER_NOT_FOUND(1001, "用户不存在"),

    /**
     * 用户名或密码错误
     */
    LOGIN_ERROR(1002, "用户名或密码错误"),

    /**
     * 用户已存在
     */
    USER_EXISTS(1003, "用户已存在"),

    /**
     * 验证码错误
     */
    VERIFY_CODE_ERROR(1004, "验证码错误"),

    /**
     * 账号已被禁用
     */
    ACCOUNT_DISABLED(1005, "账号已被禁用"),

    /**
     * Token无效
     */
    TOKEN_INVALID(1006, "Token无效"),

    /**
     * Token已过期
     */
    TOKEN_EXPIRED(1007, "Token已过期"),

    /**
     * 微信授权失败
     */
    WECHAT_AUTH_ERROR(1008, "微信授权失败"),

    /**
     * 手机号已存在
     */
    PHONE_EXISTS(1009, "手机号已存在"),

    /**
     * 手机号格式错误
     */
    PHONE_FORMAT_ERROR(1010, "手机号格式错误"),

    /**
     * 邮箱格式错误
     */
    EMAIL_FORMAT_ERROR(1011, "邮箱格式错误"),

    /**
     * 两次密码不一致
     */
    PASSWORD_NOT_MATCH(1012, "两次密码不一致"),

    /**
     * 原密码错误
     */
    OLD_PASSWORD_ERROR(1013, "原密码错误"),

    /**
     * 今日已签到
     */
    ALREADY_SIGNED_TODAY(1014, "今日已签到");

    private final Integer code;
    private final String message;
} 